﻿#include<bits/stdc++.h>
using namespace std;
#include"BinarySearchTree.h"
//int main() {
//	int a[] = { 8,3,5,6,7 };
//	BSTTree<int> t1;
//	for (auto e : a) {
//		t1.Insert(e);
//	}
//	t1.InOrder();
//	cout << endl;
//	t1.Erasse(3);
//	t1.InOrder();
//	cout << endl;
//	t1.Erasse(3);
//	t1.InOrder();
//
//	cout << endl;
//	t1.Erasse(5);
//	t1.InOrder();
//
//	cout << endl;
//	t1.Erasse(6);
//	t1.InOrder();
//	return 0;
//}
/*
int main()
{
	key_value::BSTTree<string, string> dict;
	//BSTree<string, string> copy = dict;
	dict.Insert("left", "左边");
	dict.Insert("right", "右边");
	dict.Insert("insert", "插入");
	dict.Insert("string", "字符串");
	string str;
	while (cin >> str)
	{
		auto ret = dict.Find(str);
		if (ret)
		{
			cout << "->" << ret->_value << endl;
		}
		else
		{
			cout << "无此单词，请重新输入" << endl;
		}
	}
	return 0;
}
*/

int main()
{
	string arr[] = { "苹果", "西瓜", "苹果", "西瓜", "苹果", "苹果", "西瓜", "苹果", "香蕉", "苹果", "香蕉" };
	key_value::BSTTree<string, int> countTree;
	for (const auto& str : arr)
	{
		// 先查找⽔果在不在搜索树中
		// 1、不在，说明⽔果第⼀次出现，则插⼊<⽔果, 1>
		// 2、在，则查找到的结点中⽔果对应的次数++
		//BSTreeNode<string, int>* ret = countTree.Find(str);
		auto ret = countTree.Find(str);
		if (ret == NULL)
		{
		countTree.Insert(str, 1);
		}
		else
		{
		ret->_value++;
		}
		}
		countTree.InOrder();
		return 0;
	}